篇首语:本文由编程笔记#小编为大家整理,主要介绍了SQL Server入门教程-基础篇相关的知识,希望对你有一定的参考价值。
目录
🎈前言
🌻SQL Server介绍
🌼SQL Server数据库简介
🌷数据库的常见分类
🌺SQL语言的分类
🙈SQL Server基础语言学习
🙉CREATE DATABASE - 创建数据库
🙊ALTER DATABASE-修改数据库
🐵DROP DATABASE - 删除数据库
🐒CREATE TABLE – 创建表
🦍INSERT – 插入数据
🦧SELECT – 查询数据
🐶DISTINCT – 去除重复值
🐕WHERE – 条件查询
🦮AND & OR – 运算符
🐕🦺ORDER BY – 排序
🐩Group by – 分组查询
🦏Having – 过滤条件查询
🐧UPDATE – 更新数据
🐇DELETE – 删除数据
🐿️TRUNCATE TABLE – 清除表数据
🐎DROP TABLE – 删除表
💌总结
🎈前言
🌻SQL Server介绍
🌼SQL Server数据库简介
SQL Server数据库是Microsoft开发设计的一个关系数据库智能管理系统(RDBMS),现在是全世界主流数据库之一;
SQL Server数据库具备方便使用、可伸缩性好、相关软件集成程度高等优势,能够从单一的笔记本上运行或以高倍云服务器集群为基础,或在这两者之间任何东西上运行。尽管说成“任何东西”,可是依然要考虑有关的软件和硬件配置;
🌷数据库的常见分类
- 关系型数据库:mysql、Oracle、DB2、SQL Server
- 非关系型数据库:Redis、HBase等等
🌺SQL语言的分类
- DQL:数据查询语言:select、from、where
- DCL:数据控制语言:grant、revoke
- DDL:数据定义语言:create、alter、drop、truncate
- DML:数据操作语言:insert、update、delete
- TCL:事务控制语言:commit、rollback
🙈SQL Server基础语言学习
🙉CREATE DATABASE - 创建数据库
--判断数据库文件是否存在,如果存在就删除 exits是判断()语句是否返回值,如果有就返回true,否则就是false
IF EXISTS(SELECT * FROM sysdatabases WHERE name='StudentDB ')
--删除数据库
DROP DATABASE StudentDB
GO
CREATE DATABASE StudentDB --创建数据库
ON PRIMARY --定义在主文件组上的文件
(
NAME=stu_date, --逻辑名称
FILENAME='C:\\sql\\StudentDB.mdf', --物理名称
SIZE=10, --初始大小为10mb
MAXSIZE=unlimited, --最大限制为无限大
FILEGROWTH=10%) --主数据文件增长幅度为10%
LOG ON --定义事务日志文件
(
NAME=stu_log, --逻辑名称
FILENAME='C:\\sql\\StudentDB.ldf', --物理名称
SIZE=1, --初始大小为1mb
MAXSIZE=5, --最大限制为5mb
FILEGROWTH=1--事务日志增长幅度为1mb`
)
🙊ALTER DATABASE-修改数据库
ALTER DATABASE database_name
ADD FILE [,…n][ TO FILEGROUP filegroup_name ] /*在文件组中增加数据文件*/
| ADD LOG FILE [,…n] /*增加日志文件*/
| REMOVE FILE logical_file_name /*删除数据文件*/
| ADD FILEGROUP filegroup_name /*增加文件组*/
| REMOVE FILEGROUP filegroup_name /*删除文件组*/
| MODIFY FILE /*更改文件属性*/
| MODIFY NAME = new_dbname /*数据库更名*/
| MODIFY FILEGROUP filegroup_name filegroup_property | NAME = new_filegroup_name
| SET [ ,...n ] [ WITH ] /*设置数据库属性*/
| COLLATE /*指定数据库排序规则*/
GO
🐵DROP DATABASE - 删除数据库
删除 StudentDB 数据库
DROP DATABASE StudentDB
GO
以上是建好数据库对数据库的操作,下面就是在数据库中添加表,对表进行操作。
🐒CREATE TABLE – 创建表
Student(学生表)的表结构:
列 名 | 数 据 类 型 | 长度 | 可空 | 默认值 | 说 明 |
---|
学号 | int | | × | 无 | 主键,自增为1 |
姓名 | nvarchar | 50 | × | 无 | |
性别 | nvarchar | 50 | √ | 1 | 1:男;0:女 |
出生时间 | 日期型(datetime) | 系统默认 | √ | 无 | |
数学 | varchar | 50 | √ | 无 | |
英语 | varchar | 50 | √ | 无 | |
语文 | varchar | 50 | √ | 无 | |
班级 | nvarchar | 50 | √ | 无 | |
实例:
本代码演示如何创建“Student”的表和表中的结构。
该表包含8个列,列名分别是:“StuNo”、“StuName”、“StuSex”、“StuBir”、Math 、English 、Chinese 以及Classes ;
CREATE TABLE Student(
StuNo int NOT NULL identity(1,1) not null PRIMARY key ,
StuName char(8) NOT NULL ,
StuSex bit NULL DEFAULT (1) ,
StuBir datetime NULL ,
Math varchar(50),
English varchar(50),
Chinese varchar(50),
Classes nvarchar(50)
)
GO
这就是创建表的sql命令,成功后即可添加数据。
🦍INSERT – 插入数据
语法格式:
insert into 表名(字段名,...) values(值,...);
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);
实例:
本例演示 “Student” 表插入记录的两种方式:
1、插入新的行
insert into Student values('张三','男','1999/01/02','80','75','90','2001班')
2、在指定的列中插入数据
INSERT INTO Student (StuName, StuSex) VALUES ('李四', '女');
当下面的消息提示栏这出现上面这样的就是插入成功了。
数据表里就会出现你刚才插入的数据。下面就是查询出来结果。
温馨提示:当第一列是主键自增列的时候,不用插入,但第一列不是主键和自增列时,必须插入,否则会提示列数目不匹配的错误。
🦧SELECT – 查询数据
SELECT 语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。
语法:
SELECT * FROM 表名称;
我们也可以指定所要查询数据的列:
SELECT 列名称 FROM 表名称;
温馨提示:SQL 语句不区分大小写,SELECT 等效于 select。
实例:
SQL SELECT * 实例:
SELECT * FROM Student;
就会查询出表中所有的数据。
温馨提示:星号(*)是选取所有列的方法。
如需获取表中的其中某列的数据,请使用类似这样的 SELECT 语句:
SELECT StuNo,StuName FROM Student;
这样查询出来的结果就是查询你指定的字段。
🐶DISTINCT – 去除重复值
如果一张表中有多行重复数据,如何去重显示呢?可以了解下 DISTINCT
。
语法:
SELECT DISTINCT 列名称 FROM 表名称;
实例:
如果要从 “StuName” 列中选取所有的值,我们需要使用 SELECT
语句:
SELECT DISTINCT StuName FROM Student;
就会发现,重名的都没显示,只显示唯一的名字。
🐕WHERE – 条件查询
WHERE 子句是从表中查询出需要特定条件的语法。
语法:
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值;
下面的运算符可在 WHERE 子句中使用:
操作符 | 描述 |
---|
= | 等于 |
<> | 不等于 |
> | 大于 |
< | 小于 |
>&#61; | 大于等于 |
<&#61; | 小于等于 |
BETWEEN | 在某个范围内(包含) |
LIKE | 搜索某种模式(模糊查询) |
- 模糊查询运算符&#xff1a;
- like&#xff1a;%任意多个字符、_任意单个字符&#xff0c;如果有特殊字符&#xff0c;需要使用escape转义
- between and
- not between and
- in
- not in
- is null
- is not null
温馨提示&#xff1a;在某些版本的 SQL 中&#xff0c;操作符 <> 可以写为 !&#61;。
实例&#xff1a;
查询Student中性别为男的学生
SELECT * FROM Student WHERE StuSex&#61;&#39;男&#39;;
查询出来的结果就都是男生。
温馨提示&#xff1a; SQL 使用单引号来环绕文本值。如果是数值&#xff0c;请不要使用引号。
&#x1f9ae;AND & OR – 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
- 如果第一个条件和第二个条件都成立&#xff0c;则 AND 运算符显示一条记录。
- 如果第一个条件和第二个条件中只要有一个成立&#xff0c;则 OR 运算符显示一条记录。
语法&#xff1a;
AND 运算符实例&#xff1a;
SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值;
OR 运算符实例&#xff1a;
SELECT * FROM 表名称 WHERE 列 运算符 值 OR 列 运算符 值;
实例&#xff1a;
AND 运算符实例&#xff1a;
使用 AND 来显示所有姓名为 “张三” 并且性别是 “男“ 的人&#xff1a;
SELECT * FROM Student WHERE StuName&#61;&#39;张三&#39; AND StuSex&#61;&#39;男&#39;;
OR 运算符实例&#xff1a;
使用 OR 来显示所有姓名为 “张三” 并且性别是 “男“ 的人&#xff1a;
SELECT * FROM Student WHERE StuName&#61;&#39;张三&#39; OR StuSex&#61;&#39;男&#39;;
结合 AND 和 OR 运算符&#xff1a;
我们也可以把 AND 和 OR 结合起来&#xff08;使用圆括号来组成复杂的表达式&#xff09;:
SELECT * FROM Student WHERE (StuName&#61;&#39;张三&#39; OR StuName&#61;&#39;李四&#39;) AND StuSex&#61;&#39;男&#39;;
&#x1f415;&#x1f9ba;ORDER BY – 排序
ORDER BY 语句用于根据指定的列对结果集进行排序&#xff0c;默认按照升序对记录进行排序&#xff0c;可以使用 DESC 关键字进行降序排序。
语法&#xff1a;
SELECT * FROM 表名称 ORDER BY 列1,列2 DESC;
默认排序为 ASC 升序&#xff0c;DESC 代表降序。
实例&#xff1a;
以字母顺序显示 StuName名称&#xff1a;
SELECT * FROM Student ORDER BY StuName asc|desc;
空值&#xff08;NULL&#xff09;默认排序在有值行之后。
温馨提示&#xff1a; 在第一列中有相同的值时&#xff0c;第二列是以升序排列的。如果第一列中有些值为 null 时&#xff0c;情况也是这样的。
&#x1f429;Group by – 分组查询
group by可以根据某一列进行分组查询。
语法&#xff1a;
select 【*/字段名,...】 from 【表名/查询结果集】
【where 查询条件】
group by 分组条件;
实例&#xff1a;
按照Student中的班级进行查询。
select Classes from Student group by Classes;
&#x1f98f;Having – 过滤条件查询
语法&#xff1a;
select 【*/字段名,...】 from 【表名/查询结果集】
【where 查询条件】
group by 分组条件
having 过滤条件;
实例&#xff1a;
根据数学成绩大于75分进行查询&#xff0c;查询出每位同学的学号&#xff0c;姓名&#xff0c;数学成绩。
select StuNo,StuName,Math from Student
group by Math,StuNo,StuName
having Math > 75;
温馨提示&#xff1a;having必须跟在group by的后面&#xff0c;不能单独使用。group by后面必须跟的是非聚合函数。
&#x1f427;UPDATE – 更新数据
UPDATE用于修改表中的数据
语法&#xff1a;
UPDATE 表名称 SET 列名称 &#61; 新值 WHERE 列名称 &#61; 某值;
实例&#xff1a;
更新某一行中的一个列&#xff1a;
更新Student表中张三的数学成绩
UPDATE Studnet SET Math&#61; &#39;80&#39; WHERE StuName&#61; &#39;张三&#39;;
出现&#xff08;一行受影响&#xff09;代表更新成功。
温馨提示&#xff1a;SET后边是要更新的内容&#xff0c;WHERE后边是条件。
&#x1f407;DELETE – 删除数据
DELETE 语句用于删除表中的行。
语法&#xff1a;
DELETE FROM 表名称 WHERE 列名称 &#61; 值;
实例&#xff1a;
删除某行&#xff1a;
删除 Student表中 StuName为 “张三” 的行&#xff1a;
DELETE FROM Studnet WHERE StuName&#61; &#39;张三&#39;;
出现&#xff08;一行受影响&#xff09;代表删除成功。
删除所有行&#xff1a;
可以在不删除表的情况下删除所有的行&#xff1a;
DELETE FROM Student;
温馨提示&#xff1a;删除的时候一定要有条件&#xff0c;不然的话表里的数据就都没有了。
&#x1f43f;️TRUNCATE TABLE – 清除表数据
TRUNCATE TABLE命令是只删除表中的所有数据&#xff0c;对表的结构不影响。
语法&#xff1a;
TRUNCATE TABLE 表名称;
实例&#xff1a;
如何删除名为 “Student” 表中的数据。
TRUNCATE TABLE Student;
&#x1f40e;DROP TABLE – 删除表
最后要是不想要这张表的话&#xff0c;直接把整个表删除即可。
语法&#xff1a;
DROP TABLE 表名称;
实例&#xff1a;
删除名为 "Student" 的表。
drop table persons;
&#x1f48c;总结
以上是Sql Server的一些基本命令&#xff0c;大家掌握的怎么样呢。让我们来一起学习Sql Server数据库。